package com.sfang.common.util.verifyCode;

import com.sfang.common.base.collection.KeyValuePair;
import sun.misc.BASE64Decoder;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Base64;
import java.util.List;
import java.util.Random;

public class VerifyCodeUtils {
    // 验证码字符集
    private static final char[] chars = {
            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
            'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
            'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
            'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
            'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
    // 字符数量
    private static final int SIZE = 4;
    // 干扰线数量
    private static final int LINES = 5;
    // 宽度
    private static final int WIDTH = 100;
    // 高度
    private static final int HEIGHT = 60;
    // 字体大小
    private static final int FONT_SIZE = 30;

    /**
     * 生成随机验证码及图片
     * Object[0]：验证码字符串；
     * Object[1]：验证码图片。
     */
    public static KeyValuePair<String, String> createImage() {
        Base64.Encoder base64 = Base64.getEncoder();
        StringBuffer sb = new StringBuffer();
        // 1.创建空白图片
        BufferedImage image = new BufferedImage(
                WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
        // 2.获取图片画笔
        Graphics graphic = image.getGraphics();
        // 3.设置画笔颜色
        graphic.setColor(Color.LIGHT_GRAY);
        // 4.绘制矩形背景
        graphic.fillRect(0, 0, WIDTH, HEIGHT);
        // 5.画随机字符
        Random ran = new Random();
        for (int i = 0; i < SIZE; i++) {
            // 取随机字符索引
            int n = ran.nextInt(chars.length);
            // 设置随机颜色
            graphic.setColor(getRandomColor());
            // 设置字体大小
            graphic.setFont(new Font(
                    null, Font.BOLD + Font.ITALIC, FONT_SIZE));
            // 画字符
            graphic.drawString(
                    chars[n] + "", i * WIDTH / SIZE, HEIGHT * 2 / 3);
            // 记录字符
            sb.append(chars[n]);
        }
        // 6.画干扰线
        for (int i = 0; i < LINES; i++) {
            // 设置随机颜色
            graphic.setColor(getRandomColor());
            // 随机画线
            graphic.drawLine(ran.nextInt(WIDTH), ran.nextInt(HEIGHT),
                    ran.nextInt(WIDTH), ran.nextInt(HEIGHT));
        }
        // 7.返回验证码和图片
//        return new Object[]{sb.toString(), image};

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
//        BufferedImage image = imageCaptchaService.getImageChallengeForID(request.getRequestedSessionId());
        try {
            ImageIO.write(image, "jpeg", baos);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new KeyValuePair(sb.toString(), base64.encodeToString(baos.toByteArray()));

    }

    /**
     * 随机取色
     */
    public static Color getRandomColor() {
        Random ran = new Random();
        Color color = new Color(ran.nextInt(256),
                ran.nextInt(256), ran.nextInt(256));
        return color;
    }

    public static KeyValuePair createImageCode(List<String> imageList) {
        String imageCode = "";
        String[] image64List= new String[4];
        int i= 0;
        for (String image : imageList) {
            Random random = new Random();
            int code = random.nextInt(100) % 4;
            String image64 = generateImage(image, code);
            imageCode += code;
            image64List[i]=image64;
            i++;
        }

        String xPicStr = CaptchaImageUtil.xPic(image64List);
        System.out.println(imageCode);
        System.out.println(xPicStr);

        return new KeyValuePair(imageCode,xPicStr);
    }

    /**
     * @param imgStr base64编码字符串
     * @return
     * @Description: 将base64编码字符串转换为图片
     * @Author:
     * @CreateTime:
     */
    public static String generateImage(String imgStr, Integer code) {

        try {
            byte[] b = getBytes(imgStr);

            switch (code) {
                case 1:
                    InputStream bais = new ByteArrayInputStream(b);
                    BufferedImage src = ImageIO.read(bais);
                    imgStr = getImageBinary(CaptchaImageUtil.Rotate(src, 90));
                    break;
                case 2:
                    InputStream bais1 = new ByteArrayInputStream(b);
                    BufferedImage src1 = ImageIO.read(bais1);
                    imgStr = getImageBinary(CaptchaImageUtil.Rotate(src1, 180));
                    break;
                case 3:
                    InputStream bais2 = new ByteArrayInputStream(b);
                    BufferedImage src2 = ImageIO.read(bais2);
                    imgStr = getImageBinary(CaptchaImageUtil.Rotate(src2, 270));
                    break;
            }

            return imgStr;
        } catch (Exception e) {
            return "";
        }
    }

    static String getImageBinary(BufferedImage rotate) {
        Base64.Encoder base64 = Base64.getEncoder();
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(rotate, "jpg", baos);
            byte[] bytes = baos.toByteArray();

            String trim = base64.encodeToString(baos.toByteArray()).trim();
            return trim;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static boolean generateImage(String imgStr, String path) {
        if (imgStr == null)
            return false;
        try {
            // 解密
            byte[] b = getBytes(imgStr);
            OutputStream out = new FileOutputStream(path);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    public static byte[] getBytes(String imgStr) throws IOException {
        BASE64Decoder decoder = new BASE64Decoder();
        // 解密
        byte[] b = decoder.decodeBuffer(imgStr);
        // 处理数据
        for (int i = 0; i < b.length; ++i) {
            if (b[i] < 0) {
                b[i] += 256;
            }
        }
        return b;
    }

    /**
     * 示例
     */
    public static void main(String[] args) {
//        String strImg1 ="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";
//        String strImg2 ="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";
//        String strImg3 ="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";
//        String strImg4 ="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";
//        List<String> imageList = new ArrayList<>();
//        imageList.add(strImg1);
//        imageList.add(strImg2);
//        imageList.add(strImg3);
//        imageList.add(strImg4);
//        createImageCode(imageList);

        String strImg ="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" ;
        generateImage(strImg, "E:/test3.jpg");

    }

}
